Skip to content

Document some of the requirements we currently have on the IDP#450

Merged
rhafer merged 1 commit intoopencloud-eu:mainfrom
rhafer:idp-requirement
Sep 2, 2025
Merged

Document some of the requirements we currently have on the IDP#450
rhafer merged 1 commit intoopencloud-eu:mainfrom
rhafer:idp-requirement

Conversation

@rhafer
Copy link
Member

@rhafer rhafer commented Aug 27, 2025

Until we have addressed the current restrictions of our client we should at least document them.

@rhafer rhafer self-assigned this Aug 27, 2025
Copilot AI review requested due to automatic review settings August 27, 2025 10:59

This comment was marked as outdated.

@rhafer rhafer force-pushed the idp-requirement branch 2 times, most recently from 76f5de8 to 23ffe91 Compare August 27, 2025 11:03
@rhafer rhafer requested a review from Copilot August 27, 2025 11:03

This comment was marked as outdated.

@rhafer rhafer requested a review from Copilot August 27, 2025 11:08

This comment was marked as outdated.

@rhafer rhafer requested a review from Copilot August 27, 2025 11:24

This comment was marked as outdated.

@rhafer rhafer requested a review from Copilot August 27, 2025 11:37
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Documents the current requirements and limitations for integrating external OpenID Connect Identity Providers with OpenCloud, providing administrators with clear expectations before attempting integration.

  • Added a comprehensive requirements section outlining IDP compatibility needs
  • Included specific technical requirements for public clients, PKCE flow, and predefined client IDs
  • Added clarification about scope handling and automatic role assignment limitations

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link
Member

@dragotin dragotin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of nitpickings

[Desktop](https://github.com/opencloud-eu/desktop/), [Android](https://github.com/opencloud-eu/android/)
and [iOS](https://github.com/opencloud-eu/ios/)), are implemented as public clients using the
Authorization Code flow with PKCE. Therefore the IDP needs to support this flow.
- All clients, except the Web client, use hardcoded client IDs. Therefore the IDP needs to
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the clients really hardcoded as in code, or are they "just" configured?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I guess most clients allow them to be changed via config (or branding or MDM) somehow, but for most users that is the equivalent of "hard-coded". (i.e. there is no-UI to change it and fiddling with some config file on an IOS/Android device is quite a hurdle, if possible at all)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll change it to predefined

The following environment variables are relevant when connecting OpenCloud to an external IDP

- `OC_OIDC_ISSUER`: Set this to the issuer URL of the external Identity Provider
- `OC_EXCLUDE_RUN_SERVICES`: To disable the built-in Identity Provider set this to `idp`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the default value? I would name it here, for example like "Change this from internal to idp to disable...."

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default is empty. I reworded the sentence a bit. I hope that makes it better to understand.


- `OC_OIDC_ISSUER`: Set this to the issuer URL of the external Identity Provider
- `OC_EXCLUDE_RUN_SERVICES`: To disable the built-in Identity Provider set this to `idp`
- `PROXY_OIDC_REWRITE_WELLKNOWN`: Set this to `true` to expose the Identity
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence does not really explain. Where is the identity exposed? Why?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not any identity that is being exposed. It's the "Identity Provider's well-known/openid-configuration endpoint.

Reworded, hth.


- `OC_OIDC_ISSUER`: Set this to the issuer URL of the external Identity Provider
- `OC_EXCLUDE_RUN_SERVICES`: To disable the built-in Identity Provider set this to `idp`
- `PROXY_OIDC_REWRITE_WELLKNOWN`: Set this to `true` to expose the Identity
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add an real-world example configuration here with a little description?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add a link to the keycloak chapter. I think that should do it.

Until we have addressed the current restrictions of our clients we should
at least document them.
@rhafer rhafer merged commit 030c489 into opencloud-eu:main Sep 2, 2025
2 checks passed
@openclouders openclouders mentioned this pull request Sep 2, 2025
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants